package main

import "fmt"

// 结构体嵌套

type address struct {
	province string
	city     string
}
type person struct {
	name string
	age  int
	// 匿名嵌套结构体
	// 这样写有利有弊,如果有一样属性的结构体,就会冲突
	address
}

type company struct {
	name string
	addr address
}

func main() {
	p1 := person{
		name: "二狗",
		age:  18,
		address: address{
			province: "上海",
			city:     "浦东",
		},
	}
	fmt.Println(p1)                           // {二狗 18 {上海 浦东}}
	fmt.Println(p1.name, p1.address.province) // 二狗 上海
	// 上面用了 匿名嵌套结构体,所以可以直接这样打印到属性
	fmt.Println(p1.city) // 浦东

}
